/**
 * 
 */
package com.snatch.common.dao;

import java.util.List;

/**
 * BaseDao类
 *  
 * @author duanhx
 * @version [Ver 1.0; 2012-08-01]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface IBaseDao<E> {
	/**
	 * 根据主键选择对象
	 * 
	 * @param entity
	 * @return
	 */
	E selectByPrimaryKey(Integer id);
	
	/**
	 * 根据条件获取Entity集合 所有数据时new一空实例为条件(多条记录)
	 * （未成生成，需要自己扩展）
	 * @param entity  
	 * @return
	 */
	List<E> selectList(E entity);
	
	/**
	 * 将实例所有属性插入对db中
	 * 
	 * @param entity
	 */
	void insert(E entity);
	
	/**
	 * 将实例中不为空的属性插入db中
	 * @param entity
	 */
	void insertSelective(E entity);
	
	/**
	 * 根据主键删实例
	 * 
	 * @param entity
	 */
	void deleteByPrimaryKey(Integer id);
	
	
	/**
	 * 
	 * 将实例中不为空的属性更新到db中
	 * @param entity
	 */
	void updateByPrimaryKeySelective(E entity);
	
	
	/**
	 *  将实例中所有的属性更新到db中
	 * @param entity
	 */
	void updateByPrimaryKey (E entity);
	
}
